/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package validators;

import java.util.Calendar;
import java.util.GregorianCalendar;
import utils.GetAge;

/**
 *
 * @author arruda
 */
public class ValidadorDataAdmissao extends Validator{
    
    private boolean validarAdmissao(Calendar admissao, Calendar nascimento) throws ValidatorError {
        
        int age = GetAge.getAge(nascimento);
        if(!admissao.after(nascimento))
                throw new ValidatorError("Data anterior a data de nascimento");
        if(!admissao.before(Calendar.getInstance()))
                throw new ValidatorError("Data posterior a data atual");
        if(age < 18)
                throw new ValidatorError("Menor de 18 anos");
        
        return true;
    }

    @Override
    public boolean validate(Object fieldValue, Object dependence) throws ValidatorError {
        try {
            Calendar admissao = (GregorianCalendar) fieldValue;
            Calendar nascimento = (GregorianCalendar) dependence;
            if (validarAdmissao(admissao,nascimento)) {
                return true;
            }
        } catch (ValidatorError e) {
            throw new ValidatorError("Admissao:" + e.getMessage());
        }
        return true;
    }
}
